1. Field
The present invention relates to the field of cryptography. More particularly, the present invention relates to a cryptographic accelerator.
2. General Background
Over the last decade, computers have become an important product for both commercial and personal use, in part due to their versatility. For example, computers are commonly used as a vehicle to transfer information over a communication link such as private networks or public networks. "Private networks" include any network having restricted access (e.g., a local area network), while "public networks" include any network allowing access to the public at large such as the Internet for example. In many situations, it may be desirable to encrypt digital information prior to transmission over the communication link so that the transmitted information is clear and unambiguous to a targeted recipient, but is incomprehensible to any illegitimate interlopers.
In 1981, the National Institute of Standards and Technology approved a data security process referred to as the "Data Encryption Standard." The Data Encryption Standard (DES) details the use of a cryptographic function, referred to as a "Data Encryption Algorithm" (DEA), for encrypting and decrypting digital information by a single, unique key. To ensure security of the transmitted information, the nature of the key is held in confidence between the source and the targeted recipient. DES and DEA are described in a Federal Information Processing Standards Publication 46-2 (FIPS PUB 46-2) entitled "Data Encryption Standard (DES)" which was published on or around Dec. 30, 1993.
In general, DEA features three (3) types of cryptographic operations; namely, bit permutations (or sometimes referred to as bit swapping), exclusive-OR (XOR) operations and table lookups. A "bit permutation" is a transposition of bits such that a bit pattern of input information differs from the bit pattern of output information. While XOR operations and table lookups can be adequately performed by software, bit permutations are more difficult to replicate in software.
Concise software code for emulating bit permutations is difficult to produce because there is no mathematical relationship between the input bit pattern and the output bit pattern. Instead, to achieve transposition, sub-programs are coded to test individual bits in the input pattern and then set reset bits in the output pattern, which greatly increases the number of instructions needed for a software implementation of DEA as shown in Table A.
TABLE A NUMBER OF PROCESSOR OPERATIONS PER INSTRUCTIONS DES OPERATION ENCRYPTION PER OPERATION Initial Permutation 1 128 Reverse Initial Permutation 1 128 Key Bit Selection PC-1 1 112 Key Rotate 16 96 Key Bit Selection PC-2 16 1792 XOR 16 16 E-Bit Selection 16 256 S Table Lookup 128 128 Bit Permutation 16 1024 Total 3680
As a result, encryption/decryption software in accordance with DEA is slow and costly due to increased programming costs and increased memory size to accommodate the complex software. Hence, it would be desirable to create a cryptographic accelerator which includes hardware to perform bit permutations and other instruction intensive operations while other operations are performed by software as normal. This would avoid substantial modification of current electronic systems and enhance the speed of the cryptographic accelerator.